package com.huishu.coupon.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.huishu.commons.pojo.Result;
import com.huishu.commons.pojo.dto.ReturnUserCouponDTO;
import com.huishu.commons.pojo.dto.UseCouponDTO;
import com.huishu.coupon.pojo.model.CouponHistoryDO;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author generator@ljj
 * @since 2023-04-10
 */
public interface CouponHistoryService extends IService<CouponHistoryDO> {

    /**
     * 标记使用的优惠卷
     *
     * @param useCoupons
     * @return
     */
    Result useCoupon(List<UseCouponDTO> useCoupons);

    /**
     * 我的优惠卷
     * type 1 查询我的优惠卷 2 查询待领取
     *
     * @return
     */
    Result myCoupon(Integer type);

    /**
     * 领取优惠卷
     *
     * @param couponId
     * @return
     */
    Result draw(Long couponId);

    /**
     * 回退优惠卷
     *
     * @param returnUserCouponDTO
     * @return
     */
    Result returnUserCoupon(ReturnUserCouponDTO returnUserCouponDTO);

    /**
     * 领取社群优惠卷
     *
     * @param couponId
     * @param code
     * @return
     */
    Result receiveAssociation(Long couponId, String code);

    /**
     * 发放用户领取的优惠卷
     *
     * @param openId
     * @return
     */
    Result sendReceiveAssociationCoupon(String openId, Long userId);
}
